using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using ACME.Northwind.DataTransfer;
using Widgetsphere.Core.Util;

namespace ACME.Northwind.WCFService
{
	// NOTE: If you change the interface name "IDataService" here, you must also update the reference to "IDataService" in Web.config.
	[ServiceContract]
	public interface IDataService
	{

		#region Category Select All

		/// <summary>
		/// Get a list of all Category DTO items
		/// </summary>
		[OperationContract]
		List<CategoryDTO> GetCategoryList();

		#endregion

		#region Category Select By Primary Key

		/// <summary>
		/// Get a single Category DTO item by primary key
		/// </summary>
		[OperationContract]
		CategoryDTO GetCategory(int categoryid);

		#endregion

		#region Category select paged

		/// <summary>
		/// Get a paginated list of Category DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<CategoryDTO> GetCategoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Category Select by LINQ

		/// <summary>
		/// Get a list of Category DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<CategoryDTO> GetCategoryListByLINQ(string linq);

		#endregion

		#region Category Select by Column

		#endregion

		#region Category Select By Foreign Key

		#endregion

		#region Category Persist

		/// <summary>
		/// Persist a single Category DTO item
		/// </summary>
		[OperationContract]
		CategoryDTO PersistCategory(CategoryDTO item);

		#endregion

		#region Category Delete

		/// <summary>
		/// Delete a single Category DTO item
		/// </summary>
		[OperationContract]
		bool DeleteCategory(CategoryDTO item);

		#endregion

		#region CustomerCustomerDemo Select All

		/// <summary>
		/// Get a list of all CustomerCustomerDemo DTO items
		/// </summary>
		[OperationContract]
		List<CustomerCustomerDemoDTO> GetCustomerCustomerDemoList();

		#endregion

		#region CustomerCustomerDemo Select By Primary Key

		/// <summary>
		/// Get a single CustomerCustomerDemo DTO item by primary key
		/// </summary>
		[OperationContract]
		CustomerCustomerDemoDTO GetCustomerCustomerDemo(string customerid, string customertypeid);

		#endregion

		#region CustomerCustomerDemo select paged

		/// <summary>
		/// Get a paginated list of CustomerCustomerDemo DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<CustomerCustomerDemoDTO> GetCustomerCustomerDemoListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region CustomerCustomerDemo Select by LINQ

		/// <summary>
		/// Get a list of CustomerCustomerDemo DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<CustomerCustomerDemoDTO> GetCustomerCustomerDemoListByLINQ(string linq);

		#endregion

		#region CustomerCustomerDemo Select by Column

		#endregion

		#region CustomerCustomerDemo Select By Foreign Key

		/// <summary>
		/// Get a list of CustomerCustomerDemo DTO items by the CustomerDemographic foreign key
		/// </summary>
		[OperationContract]
		List<CustomerCustomerDemoDTO> GetCustomerCustomerDemoByCustomerDemographic(string customertypeid);

		/// <summary>
		/// Get a list of CustomerCustomerDemo DTO items by the Customer foreign key
		/// </summary>
		[OperationContract]
		List<CustomerCustomerDemoDTO> GetCustomerCustomerDemoByCustomer(string customerid);

		#endregion

		#region CustomerCustomerDemo Persist

		/// <summary>
		/// Persist a single CustomerCustomerDemo DTO item
		/// </summary>
		[OperationContract]
		CustomerCustomerDemoDTO PersistCustomerCustomerDemo(CustomerCustomerDemoDTO item);

		#endregion

		#region CustomerCustomerDemo Delete

		/// <summary>
		/// Delete a single CustomerCustomerDemo DTO item
		/// </summary>
		[OperationContract]
		bool DeleteCustomerCustomerDemo(CustomerCustomerDemoDTO item);

		#endregion

		#region CustomerDemographic Select All

		/// <summary>
		/// Get a list of all CustomerDemographic DTO items
		/// </summary>
		[OperationContract]
		List<CustomerDemographicDTO> GetCustomerDemographicList();

		#endregion

		#region CustomerDemographic Select By Primary Key

		/// <summary>
		/// Get a single CustomerDemographic DTO item by primary key
		/// </summary>
		[OperationContract]
		CustomerDemographicDTO GetCustomerDemographic(string customertypeid);

		#endregion

		#region CustomerDemographic select paged

		/// <summary>
		/// Get a paginated list of CustomerDemographic DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<CustomerDemographicDTO> GetCustomerDemographicListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region CustomerDemographic Select by LINQ

		/// <summary>
		/// Get a list of CustomerDemographic DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<CustomerDemographicDTO> GetCustomerDemographicListByLINQ(string linq);

		#endregion

		#region CustomerDemographic Select by Column

		#endregion

		#region CustomerDemographic Select By Foreign Key

		#endregion

		#region CustomerDemographic Persist

		/// <summary>
		/// Persist a single CustomerDemographic DTO item
		/// </summary>
		[OperationContract]
		CustomerDemographicDTO PersistCustomerDemographic(CustomerDemographicDTO item);

		#endregion

		#region CustomerDemographic Delete

		/// <summary>
		/// Delete a single CustomerDemographic DTO item
		/// </summary>
		[OperationContract]
		bool DeleteCustomerDemographic(CustomerDemographicDTO item);

		#endregion

		#region Customer Select All

		/// <summary>
		/// Get a list of all Customer DTO items
		/// </summary>
		[OperationContract]
		List<CustomerDTO> GetCustomerList();

		#endregion

		#region Customer Select By Primary Key

		/// <summary>
		/// Get a single Customer DTO item by primary key
		/// </summary>
		[OperationContract]
		CustomerDTO GetCustomer(string customerid);

		#endregion

		#region Customer select paged

		/// <summary>
		/// Get a paginated list of Customer DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<CustomerDTO> GetCustomerListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Customer Select by LINQ

		/// <summary>
		/// Get a list of Customer DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<CustomerDTO> GetCustomerListByLINQ(string linq);

		#endregion

		#region Customer Select by Column

		/// <summary>
		/// Get a list of Customer DTO items by the City field
		/// </summary>
		[OperationContract]
		List<CustomerDTO> GetCustomerByCityField(string city);

		#endregion

		#region Customer Select By Foreign Key

		#endregion

		#region Customer Persist

		/// <summary>
		/// Persist a single Customer DTO item
		/// </summary>
		[OperationContract]
		CustomerDTO PersistCustomer(CustomerDTO item);

		#endregion

		#region Customer Delete

		/// <summary>
		/// Delete a single Customer DTO item
		/// </summary>
		[OperationContract]
		bool DeleteCustomer(CustomerDTO item);

		#endregion

		#region Employee Select All

		/// <summary>
		/// Get a list of all Employee DTO items
		/// </summary>
		[OperationContract]
		List<EmployeeDTO> GetEmployeeList();

		#endregion

		#region Employee Select By Primary Key

		/// <summary>
		/// Get a single Employee DTO item by primary key
		/// </summary>
		[OperationContract]
		EmployeeDTO GetEmployee(int employeeid);

		#endregion

		#region Employee select paged

		/// <summary>
		/// Get a paginated list of Employee DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<EmployeeDTO> GetEmployeeListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Employee Select by LINQ

		/// <summary>
		/// Get a list of Employee DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<EmployeeDTO> GetEmployeeListByLINQ(string linq);

		#endregion

		#region Employee Select by Column

		#endregion

		#region Employee Select By Foreign Key

		/// <summary>
		/// Get a list of Employee DTO items by the Employee foreign key
		/// </summary>
		[OperationContract]
		List<EmployeeDTO> GetEmployeeByEmployee(int employeeid);

		#endregion

		#region Employee Persist

		/// <summary>
		/// Persist a single Employee DTO item
		/// </summary>
		[OperationContract]
		EmployeeDTO PersistEmployee(EmployeeDTO item);

		#endregion

		#region Employee Delete

		/// <summary>
		/// Delete a single Employee DTO item
		/// </summary>
		[OperationContract]
		bool DeleteEmployee(EmployeeDTO item);

		#endregion

		#region EmployeeTerritory Select All

		/// <summary>
		/// Get a list of all EmployeeTerritory DTO items
		/// </summary>
		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryList();

		#endregion

		#region EmployeeTerritory Select By Primary Key

		/// <summary>
		/// Get a single EmployeeTerritory DTO item by primary key
		/// </summary>
		[OperationContract]
		EmployeeTerritoryDTO GetEmployeeTerritory(int employeeid, string territoryid);

		#endregion

		#region EmployeeTerritory select paged

		/// <summary>
		/// Get a paginated list of EmployeeTerritory DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<EmployeeTerritoryDTO> GetEmployeeTerritoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region EmployeeTerritory Select by LINQ

		/// <summary>
		/// Get a list of EmployeeTerritory DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryListByLINQ(string linq);

		#endregion

		#region EmployeeTerritory Select by Column

		#endregion

		#region EmployeeTerritory Select By Foreign Key

		/// <summary>
		/// Get a list of EmployeeTerritory DTO items by the Employee foreign key
		/// </summary>
		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryByEmployee(int employeeid);

		/// <summary>
		/// Get a list of EmployeeTerritory DTO items by the Territory foreign key
		/// </summary>
		[OperationContract]
		List<EmployeeTerritoryDTO> GetEmployeeTerritoryByTerritory(string territoryid);

		#endregion

		#region EmployeeTerritory Persist

		/// <summary>
		/// Persist a single EmployeeTerritory DTO item
		/// </summary>
		[OperationContract]
		EmployeeTerritoryDTO PersistEmployeeTerritory(EmployeeTerritoryDTO item);

		#endregion

		#region EmployeeTerritory Delete

		/// <summary>
		/// Delete a single EmployeeTerritory DTO item
		/// </summary>
		[OperationContract]
		bool DeleteEmployeeTerritory(EmployeeTerritoryDTO item);

		#endregion

		#region OrderDetail Select All

		/// <summary>
		/// Get a list of all OrderDetail DTO items
		/// </summary>
		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailList();

		#endregion

		#region OrderDetail Select By Primary Key

		/// <summary>
		/// Get a single OrderDetail DTO item by primary key
		/// </summary>
		[OperationContract]
		OrderDetailDTO GetOrderDetail(int orderid, int productid);

		#endregion

		#region OrderDetail select paged

		/// <summary>
		/// Get a paginated list of OrderDetail DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<OrderDetailDTO> GetOrderDetailListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region OrderDetail Select by LINQ

		/// <summary>
		/// Get a list of OrderDetail DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailListByLINQ(string linq);

		#endregion

		#region OrderDetail Select by Column

		#endregion

		#region OrderDetail Select By Foreign Key

		/// <summary>
		/// Get a list of OrderDetail DTO items by the Order foreign key
		/// </summary>
		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailByOrder(int orderid);

		/// <summary>
		/// Get a list of OrderDetail DTO items by the Product foreign key
		/// </summary>
		[OperationContract]
		List<OrderDetailDTO> GetOrderDetailByProduct(int productid);

		#endregion

		#region OrderDetail Persist

		/// <summary>
		/// Persist a single OrderDetail DTO item
		/// </summary>
		[OperationContract]
		OrderDetailDTO PersistOrderDetail(OrderDetailDTO item);

		#endregion

		#region OrderDetail Delete

		/// <summary>
		/// Delete a single OrderDetail DTO item
		/// </summary>
		[OperationContract]
		bool DeleteOrderDetail(OrderDetailDTO item);

		#endregion

		#region Order Select All

		/// <summary>
		/// Get a list of all Order DTO items
		/// </summary>
		[OperationContract]
		List<OrderDTO> GetOrderList();

		#endregion

		#region Order Select By Primary Key

		/// <summary>
		/// Get a single Order DTO item by primary key
		/// </summary>
		[OperationContract]
		OrderDTO GetOrder(int orderid);

		#endregion

		#region Order select paged

		/// <summary>
		/// Get a paginated list of Order DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<OrderDTO> GetOrderListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Order Select by LINQ

		/// <summary>
		/// Get a list of Order DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<OrderDTO> GetOrderListByLINQ(string linq);

		#endregion

		#region Order Select by Column

		#endregion

		#region Order Select By Foreign Key

		/// <summary>
		/// Get a list of Order DTO items by the Customer foreign key
		/// </summary>
		[OperationContract]
		List<OrderDTO> GetOrderByCustomer(string customerid);

		/// <summary>
		/// Get a list of Order DTO items by the Employee foreign key
		/// </summary>
		[OperationContract]
		List<OrderDTO> GetOrderByEmployee(int employeeid);

		/// <summary>
		/// Get a list of Order DTO items by the Shipper foreign key
		/// </summary>
		[OperationContract]
		List<OrderDTO> GetOrderByShipper(int shipperid);

		#endregion

		#region Order Persist

		/// <summary>
		/// Persist a single Order DTO item
		/// </summary>
		[OperationContract]
		OrderDTO PersistOrder(OrderDTO item);

		#endregion

		#region Order Delete

		/// <summary>
		/// Delete a single Order DTO item
		/// </summary>
		[OperationContract]
		bool DeleteOrder(OrderDTO item);

		#endregion

		#region Product Select All

		/// <summary>
		/// Get a list of all Product DTO items
		/// </summary>
		[OperationContract]
		List<ProductDTO> GetProductList();

		#endregion

		#region Product Select By Primary Key

		/// <summary>
		/// Get a single Product DTO item by primary key
		/// </summary>
		[OperationContract]
		ProductDTO GetProduct(int productid);

		#endregion

		#region Product select paged

		/// <summary>
		/// Get a paginated list of Product DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<ProductDTO> GetProductListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Product Select by LINQ

		/// <summary>
		/// Get a list of Product DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<ProductDTO> GetProductListByLINQ(string linq);

		#endregion

		#region Product Select by Column

		#endregion

		#region Product Select By Foreign Key

		/// <summary>
		/// Get a list of Product DTO items by the Category foreign key
		/// </summary>
		[OperationContract]
		List<ProductDTO> GetProductByCategory(int categoryid);

		/// <summary>
		/// Get a list of Product DTO items by the Supplier foreign key
		/// </summary>
		[OperationContract]
		List<ProductDTO> GetProductBySupplier(int supplierid);

		#endregion

		#region Product Persist

		/// <summary>
		/// Persist a single Product DTO item
		/// </summary>
		[OperationContract]
		ProductDTO PersistProduct(ProductDTO item);

		#endregion

		#region Product Delete

		/// <summary>
		/// Delete a single Product DTO item
		/// </summary>
		[OperationContract]
		bool DeleteProduct(ProductDTO item);

		#endregion

		#region Region Select All

		/// <summary>
		/// Get a list of all Region DTO items
		/// </summary>
		[OperationContract]
		List<RegionDTO> GetRegionList();

		#endregion

		#region Region Select By Primary Key

		/// <summary>
		/// Get a single Region DTO item by primary key
		/// </summary>
		[OperationContract]
		RegionDTO GetRegion(int regionid);

		#endregion

		#region Region select paged

		/// <summary>
		/// Get a paginated list of Region DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<RegionDTO> GetRegionListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Region Select by LINQ

		/// <summary>
		/// Get a list of Region DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<RegionDTO> GetRegionListByLINQ(string linq);

		#endregion

		#region Region Select by Column

		#endregion

		#region Region Select By Foreign Key

		#endregion

		#region Region Persist

		/// <summary>
		/// Persist a single Region DTO item
		/// </summary>
		[OperationContract]
		RegionDTO PersistRegion(RegionDTO item);

		#endregion

		#region Region Delete

		/// <summary>
		/// Delete a single Region DTO item
		/// </summary>
		[OperationContract]
		bool DeleteRegion(RegionDTO item);

		#endregion

		#region Shipper Select All

		/// <summary>
		/// Get a list of all Shipper DTO items
		/// </summary>
		[OperationContract]
		List<ShipperDTO> GetShipperList();

		#endregion

		#region Shipper Select By Primary Key

		/// <summary>
		/// Get a single Shipper DTO item by primary key
		/// </summary>
		[OperationContract]
		ShipperDTO GetShipper(int shipperid);

		#endregion

		#region Shipper select paged

		/// <summary>
		/// Get a paginated list of Shipper DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<ShipperDTO> GetShipperListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Shipper Select by LINQ

		/// <summary>
		/// Get a list of Shipper DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<ShipperDTO> GetShipperListByLINQ(string linq);

		#endregion

		#region Shipper Select by Column

		#endregion

		#region Shipper Select By Foreign Key

		#endregion

		#region Shipper Persist

		/// <summary>
		/// Persist a single Shipper DTO item
		/// </summary>
		[OperationContract]
		ShipperDTO PersistShipper(ShipperDTO item);

		#endregion

		#region Shipper Delete

		/// <summary>
		/// Delete a single Shipper DTO item
		/// </summary>
		[OperationContract]
		bool DeleteShipper(ShipperDTO item);

		#endregion

		#region Supplier Select All

		/// <summary>
		/// Get a list of all Supplier DTO items
		/// </summary>
		[OperationContract]
		List<SupplierDTO> GetSupplierList();

		#endregion

		#region Supplier Select By Primary Key

		/// <summary>
		/// Get a single Supplier DTO item by primary key
		/// </summary>
		[OperationContract]
		SupplierDTO GetSupplier(int supplierid);

		#endregion

		#region Supplier select paged

		/// <summary>
		/// Get a paginated list of Supplier DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<SupplierDTO> GetSupplierListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Supplier Select by LINQ

		/// <summary>
		/// Get a list of Supplier DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<SupplierDTO> GetSupplierListByLINQ(string linq);

		#endregion

		#region Supplier Select by Column

		#endregion

		#region Supplier Select By Foreign Key

		#endregion

		#region Supplier Persist

		/// <summary>
		/// Persist a single Supplier DTO item
		/// </summary>
		[OperationContract]
		SupplierDTO PersistSupplier(SupplierDTO item);

		#endregion

		#region Supplier Delete

		/// <summary>
		/// Delete a single Supplier DTO item
		/// </summary>
		[OperationContract]
		bool DeleteSupplier(SupplierDTO item);

		#endregion

		#region Territory Select All

		/// <summary>
		/// Get a list of all Territory DTO items
		/// </summary>
		[OperationContract]
		List<TerritoryDTO> GetTerritoryList();

		#endregion

		#region Territory Select By Primary Key

		/// <summary>
		/// Get a single Territory DTO item by primary key
		/// </summary>
		[OperationContract]
		TerritoryDTO GetTerritory(string territoryid);

		#endregion

		#region Territory select paged

		/// <summary>
		/// Get a paginated list of Territory DTO items
		/// </summary>
		[OperationContract]
		PagedQueryResults<TerritoryDTO> GetTerritoryListPaged(int pageIndex, int pageSize, bool sortOrder, string sortColumn, string linq);

		#endregion

		#region Territory Select by LINQ

		/// <summary>
		/// Get a list of Territory DTO items using LINQ
		/// </summary>
		[OperationContract]
		List<TerritoryDTO> GetTerritoryListByLINQ(string linq);

		#endregion

		#region Territory Select by Column

		#endregion

		#region Territory Select By Foreign Key

		/// <summary>
		/// Get a list of Territory DTO items by the Region foreign key
		/// </summary>
		[OperationContract]
		List<TerritoryDTO> GetTerritoryByRegion(int regionid);

		#endregion

		#region Territory Persist

		/// <summary>
		/// Persist a single Territory DTO item
		/// </summary>
		[OperationContract]
		TerritoryDTO PersistTerritory(TerritoryDTO item);

		#endregion

		#region Territory Delete

		/// <summary>
		/// Delete a single Territory DTO item
		/// </summary>
		[OperationContract]
		bool DeleteTerritory(TerritoryDTO item);

		#endregion

	}

}
